package 常用API;
/*
Object是类层次结构的跟，每个类都可以将Object作为超类，所有类都直接或间接的继承该类
常用方法：toString，equals

看方法的源码，选中方法，Ctrl+B

建议所有子类都重写此方法（toString/equals）
如何重写？自动生成即可
在类中，Alt+Inter,toString/equals

 */
public class ObjectDemo {
    public static void main(String[] args) {
        //toString
        Student s=new Student();
        s.setName("林青霞");
        s.setAge(30);
        System.out.println(s);//常用API.Student@3ac3fd8b
        System.out.println(s.toString());//常用API.Student@3ac3fd8b

//        public void println(String x) {   //x=s
//            synchronized (this) {
//                print(x);
//                newLine();
//            }
//        }

//        public static String valueOf(Object obj) {    //obj=s
//            return (obj == null) ? "null" : obj.toString();
//        }

//        public String toString() {
//            return getClass().getName() + "@" + Integer.toHexString(hashCode());
//        }

        //equals
        Student s1=new Student();
        s1.setName("林青霞");
        s1.setAge(30);

        Student s2=new Student();
        s2.setName("林青霞");
        s2.setAge(30);
        //需求：比较两个对象的内容是否相同

        System.out.println(s1==s2);//false,地址值不同
        System.out.println(s1.equals(s2));
        //equals源码，需要重写
//        public boolean equals(Object obj) {
            //this----s1
            //obj-----s2
//            return (this == obj);
//        }
    }
}
